const { api } = require('../../utils/api.js');

Page({
  data: {
    carOwnerId: '',
    phoneNumber: '',
    name: '车主',
    isLoading: true,
    callSuccess: false
  },
  
  onLoad: function(options) {
    console.log('扫码结果页面接收到的参数:', options);
    console.log('参数类型:', typeof options);
    console.log('参数键值:', Object.keys(options));
    
    // 支持多种参数名：qr_data, qrData, scene
    let qrData = options.qr_data || options.qrData || options.scene;
    
    if (qrData) {
      console.log('开始解析二维码数据:', qrData);
      console.log('二维码数据类型:', typeof qrData);
      console.log('二维码数据长度:', qrData.length);
      // 获取二维码数据后，解析获取车主信息
      this.decodeQrData(qrData);
    } else {
      console.error('未接收到二维码数据，参数:', options);
      this.setData({ isLoading: false });
      wx.showToast({
        title: '无效的二维码数据',
        icon: 'none'
      });
    }
  },
  
  decodeQrData: function(qrData) {
    console.log('开始调用API解析二维码数据:', qrData);
    
    api.decodeQrCode(qrData).then(res => {
      console.log('API解析结果:', res);
      if (res.status === 'success' && res.car_owner) {
        this.setData({
          carOwnerId: res.car_owner.id,
          phoneNumber: res.car_owner.phone_number,
          name: res.car_owner.name || '车主',
          isLoading: false
        });
        console.log('车主信息设置成功:', res.car_owner);
      } else {
        console.error('API返回失败状态:', res);
        this.setData({ isLoading: false });
        wx.showToast({
          title: '获取车主信息失败',
          icon: 'none'
        });
      }
    }).catch(err => {
      console.error('解析二维码失败', err);
      this.setData({ isLoading: false });
      wx.showToast({
        title: '解析二维码失败',
        icon: 'none'
      });
    });
  },
  
  callOwner: function() {
    const phoneNumber = this.data.phoneNumber;
    if (!phoneNumber) {
      wx.showToast({
        title: '无效的电话号码',
        icon: 'none'
      });
      return;
    }
    
    wx.makePhoneCall({
      phoneNumber: phoneNumber,
      success: () => {
        console.log('拨打电话成功');
        // 记录拨打电话
        this.logCallMade();
      },
      fail: (err) => {
        console.error('拨打电话失败', err);
      }
    });
  },
  
  logCallMade: function() {
    if (!this.data.carOwnerId) {
      return;
    }
    
    api.logCallMade(this.data.carOwnerId).then(res => {
      if (res.status === 'success') {
        this.setData({ callSuccess: true });
      }
    }).catch(err => {
      console.error('记录拨打电话失败', err);
    });
  },
  
  goBack: function() {
    wx.switchTab({
      url: '/pages/index/index'
    });
  },
  
  // 分享给朋友
  onShareAppMessage: function() {
    return {
      title: '扫码结果 - 挪车小助手',
      path: '/pages/scanResult/scanResult',
      imageUrl: '/images/scan.png',
      desc: '扫描挪车码，快速联系车主'
    };
  },
  
  // 分享到朋友圈
  onShareTimeline: function() {
    return {
      title: '扫码结果 - 挪车小助手',
      path: '/pages/scanResult/scanResult',
      imageUrl: '/images/scan.png',
      query: ''
    };
  }
}); 